var IdProcessConsentMode = "#Hd_ConsentMode"; var IdModalConsentModeWindow = "#ModalConsentModeResult"; var IdModalConsentModeCookiePolicyPrivacyWindow = "#ModalConsentModeCookiePolicyPrivacyResult"; var IdConsentModePreferencesButton = "#BtnConsentModePreferences"; var IdConsentModePrivacyPolicyButton = "#BtnConsentModePrivacyPolicy"; var IdConsentModeCookiePolicyButton = "#BtnConsentModeCookiePolicy"; var IdConsentModeAcceptAllButton = "#CMode_AcceptAll"; var IdConsentModeRejectAllButton = "#CMode_RejectAll"; var IdConsentModeSaveAndGoButton = "#CMode_SaveAndGo"; var MyCookieKey = "InteriorArtDesignCMV2-v2"; $(document).ready(function () { TryToReadCookies(); $(IdConsentModePreferencesButton).click(function (e) { e.preventDefault(); $(IdModalConsentModeWindow).modal('show'); }); $(IdConsentModePrivacyPolicyButton).click(function (e) { e.preventDefault(); $("#ModalConsentModeCookiePolicyPrivacyResult_Label").text("Privacy policy di InteriorArtDesign.it"); $("#CookiePolicyPrivacyLongText").load("/docs/policy/privacypolicy.txt"); $(IdModalConsentModeCookiePolicyPrivacyWindow).modal('show'); }); $(IdConsentModeCookiePolicyButton).click(function (e) { e.preventDefault(); $("#ModalConsentModeCookiePolicyPrivacyResult_Label").text("Cookie policy di InteriorArtDesign.it"); $("#CookiePolicyPrivacyLongText").load("/docs/policy/cookiepolicy.txt"); $(IdModalConsentModeCookiePolicyPrivacyWindow).modal('show'); }); $(IdConsentModeAcceptAllButton).click(function (e) { e.preventDefault(); ConsentModeAcceptAll(); }); $(IdConsentModeRejectAllButton).click(function (e) { e.preventDefault(); ConsentModeRejectAll(); }); $(IdConsentModeSaveAndGoButton).click(function (e) { e.preventDefault(); ConsentModeSaveAndGo(); }); }); function ConsentModeAcceptAll() { // update checkboxes SetCMV2Necessari('granted'); SetCMV2Esperienza('granted'); SetCMV2Marketing('granted'); // update gtag SetConsentUpdateAll('granted'); // write cookie SetCookieCMV2(); } function ConsentModeRejectAll() { // update checkboxes SetCMV2Necessari('granted'); SetCMV2Esperienza('denied'); SetCMV2Marketing('denied'); // update gtag SetConsentUpdateAll('denied'); // write cookie SetCookieCMV2(); } function ConsentModeSaveAndGo() { // update gtag (for each item reading checkbox value) SetConsentNecessari(GetCMV2Necessari()); SetConsentEsperienza(GetCMV2Esperienza()); SetConsentMarketing(GetCMV2Marketing()); // write cookie SetCookieCMV2(); } // ##################################################### get checkbox function GetCMV2Necessari() { return $('#SwitchCheck_Necessari').is(":checked") ? 'granted' : 'denied'; } function GetCMV2Esperienza() { return $('#SwitchCheck_Esperienza').is(":checked") ? 'granted' : 'denied'; } function GetCMV2Marketing() { return $('#SwitchCheck_Marketing').is(":checked") ? 'granted' : 'denied'; } // ##################################################### set checkbox function SetCMV2Necessari(permissionValue) { $('#SwitchCheck_Necessari').prop("checked", (permissionValue == 'granted')); } function SetCMV2Esperienza(permissionValue) { $('#SwitchCheck_Esperienza').prop("checked", (permissionValue == 'granted')); } function SetCMV2Marketing(permissionValue) { $('#SwitchCheck_Marketing').prop("checked", (permissionValue == 'granted')); } // ##################################################### update gtag function SetConsentNecessari(permissionValue) { gtag('consent', 'update', { 'analytics_storage': 'granted', 'functionality_storage': 'granted' }); } function SetConsentEsperienza(permissionValue) { gtag('consent', 'update', { 'personalization_storage': permissionValue }); } function SetConsentMarketing(permissionValue) { gtag('consent', 'update', { 'ad_storage': permissionValue, 'ad_user_data': permissionValue, 'ad_personalization': permissionValue }); } function SetConsentUpdateAll(permissionValue) { gtag('consent', 'update', { 'analytics_storage': 'granted', 'functionality_storage': 'granted', 'personalization_storage': permissionValue, 'ad_storage': permissionValue, 'ad_user_data': permissionValue, 'ad_personalization': permissionValue }); } // ##################################################### read/write cookies function TryToReadCookies() { var MyJSonString = getCookie(MyCookieKey); if (MyJSonString != null) { var MyConsent = $.parseJSON(MyJSonString); //alert('-- Necessari \n' + // 'analytics_storage: ' + MyConsent.analytics_storage + '\n' + // 'functionality_storage: ' + MyConsent.functionality_storage + '\n' + // '-- Esperienza \n' + // 'personalization_storage: ' + MyConsent.personalization_storage + '\n' + // '-- Marketing \n' + // 'ad_storage: ' + MyConsent.ad_storage //); // set checkboxes SetCMV2Necessari(MyConsent.analytics_storage); SetCMV2Esperienza(MyConsent.personalization_storage); SetCMV2Marketing(MyConsent.ad_storage); // update gtag SetConsentNecessari(MyConsent.analytics_storage); SetConsentEsperienza(MyConsent.personalization_storage); SetConsentMarketing(MyConsent.ad_storage); } else { // open modal windows with preferences $(IdModalConsentModeWindow).modal('show'); } } function SetCookieCMV2() { // set variables var ConsentNecessari = GetCMV2Necessari(); var ConsentEsperienza = GetCMV2Esperienza(); var ConsentMarketing = GetCMV2Marketing(); // build object var MyJSonString = { 'analytics_storage': ConsentNecessari, 'functionality_storage': ConsentNecessari, 'personalization_storage': ConsentEsperienza, 'ad_storage': ConsentMarketing, 'ad_user_data': ConsentMarketing, 'ad_personalization': ConsentMarketing }; // stringijy object var MyCookieValue = JSON.stringify(MyJSonString); // erase cookie //console.log("EraseCookie: " + MyCookieKey); eraseCookie(MyCookieKey); // write cookie //console.log("SetCookie: " + MyCookieKey + " = " + MyCookieValue); setCookie(MyCookieKey, MyCookieValue, 365); } function setCookie(key, value, expiry) { var expires = new Date(); expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString() + ';path=/;samesite=Strict;secure;'; } function getCookie(key) { var nameEQ = key + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } function eraseCookie(key) { document.cookie = key + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/;'; }